home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
kcl
/
kcl.lha
/
cmpnew
/
cmplabel.c
< prev
next >
Wrap
C/C++ Source or Header
|
1987-06-04
|
20KB
|
851 lines
/* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
#include <cmpinclude.h>
#include "cmplabel.h"
init_cmplabel(start,size,data)char *start;int size;object data;
{ register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
VV[1]->s.s_stype=(short)stp_special;
if(VV[1]->s.s_dbind == OBJNULL){
VV[1]->s.s_dbind = VV[0];}
VV[2]->s.s_stype=(short)stp_special;
VV[3]->s.s_stype=(short)stp_special;
MM(VV[43],L1,start,size,data);
MM(VV[44],L2,start,size,data);
MM(VV[45],L3,start,size,data);
MM(VV[46],L4,start,size,data);
MF(VV[47],L5,start,size,data);
MF(VV[48],L6,start,size,data);
MF(VV[49],L7,start,size,data);
MF(VV[50],L8,start,size,data);
vs_top=vs_base=base;
}
/* macro definition for NEXT-LABEL */
static L1()
{ register object *base=vs_base;
register object *sup=base+VM3;
vs_reserve(VM3);
check_arg(2);
vs_top=sup;
{object V1=base[0]->c.c_cdr;
if(!endp(V1))invalid_macro_call();}
base[2]= VV[4];
vs_top=(vs_base=base+2)+1;
return;
}
/* macro definition for NEXT-LABEL* */
static L2()
{ register object *base=vs_base;
register object *sup=base+VM4;
vs_reserve(VM4);
check_arg(2);
vs_top=sup;
{object V2=base[0]->c.c_cdr;
if(!endp(V2))invalid_macro_call();}
base[2]= VV[5];
vs_top=(vs_base=base+2)+1;
return;
}
/* macro definition for WT-LABEL */
static L3()
{ register object *base=vs_base;
register object *sup=base+VM5;
vs_reserve(VM5);
check_arg(2);
vs_top=sup;
{object V3=base[0]->c.c_cdr;
if(endp(V3))invalid_macro_call();
base[2]= (V3->c.c_car);
V3=V3->c.c_cdr;
if(!endp(V3))invalid_macro_call();}
base[3]= list(2,VV[7],base[2]);
base[4]= list(2,VV[10],base[2]);
base[5]= list(4,VV[8],VV[9],base[4],VV[11]);
base[6]= list(3,VV[6],base[3],base[5]);
vs_top=(vs_base=base+6)+1;
return;
}
/* macro definition for WT-GO */
static L4()
{ register object *base=vs_base;
register object *sup=base+VM6;
vs_reserve(VM6);
check_arg(2);
vs_top=sup;
{object V4=base[0]->c.c_cdr;
if(endp(V4))invalid_macro_call();
base[2]= (V4->c.c_car);
V4=V4->c.c_cdr;
if(!endp(V4))invalid_macro_call();}
base[3]= list(3,VV[13],base[2],Ct);
base[4]= list(2,VV[10],base[2]);
base[5]= list(4,VV[14],VV[15],base[4],VV[16]);
base[6]= list(3,VV[12],base[3],base[5]);
vs_top=(vs_base=base+6)+1;
return;
}
/* function definition for UNWIND-BDS */
static L5()
{ register object *base=vs_base;
register object *sup=base+VM7;
vs_reserve(VM7);
check_arg(2);
vs_top=sup;
TTL:;
if((base[0])==Cnil){
goto T2;}
princ_str("\n bds_unwind(V",VV[17]);
base[2]= base[0];
(void)simple_symlispcall_no_event(VV[51],base+2,1);
princ_str(");",VV[17]);
T2:;
{int V5;
V5= 0;
T11:;
base[2]= make_fixnum(V5);
if(!(number_compare(base[2],base[1])>=0)){
goto T12;}
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;
T12:;
princ_str("\n bds_unwind1;",VV[17]);
V5= (V5)+1;
goto T11;}
}
/* function definition for UNWIND-EXIT */
static L6()
{ register object *base=vs_base;
register object *sup=base+VM8;
vs_reserve(VM8);
bds_check;
if(vs_top-vs_base<1) too_few_arguments();
if(vs_top-vs_base>2) too_many_arguments();
vs_base=vs_base+1;
if(vs_base>=vs_top){vs_top=sup;goto T21;}
vs_top=sup;
goto T22;
T21:;
base[1]= Cnil;
T22:;
{int V6;
bds_bind(VV[18],symbol_value(VV[18]));
base[3]= Cnil;
V6= 0;
if(!(base[0]==VV[19])){
goto T25;}
if(symbol_value(VV[20])==VV[21]){
goto T25;}
if(symbol_value(VV[20])==VV[22]){
goto T25;}
princ_str("\n ",VV[17]);
(void)simple_symlispcall_no_event(VV[52],base+4,0);
T25:;
if(!(type_of(symbol_value(VV[20]))==t_cons)){
goto T35;}
if(!(car(symbol_value(VV[20]))==VV[23])){
goto T35;}
base[4]= base[0];
base[5]= cadr(symbol_value(VV[20]));
(void)simple_symlispcall_no_event(VV[53],base+4,2);
if(!(base[0]==Ct)){
goto T33;}
base[4]= Cnil;
vs_top=(vs_base=base+4)+1;
bds_unwind1;
return;
T35:;
if(!(type_of(symbol_value(VV[20]))==t_cons)){
goto T33;}
if(!(car(symbol_value(VV[20]))==VV[24])){
goto T33;}
base[4]= base[0];
base[5]= cadr(symbol_value(VV[20]));
(void)simple_symlispcall_no_event(VV[54],base+4,2);
if((base[0])!=Cnil){
goto T33;}
base[4]= Cnil;
vs_top=(vs_base=base+4)+1;
bds_unwind1;
return;
T33:;
{object V7;
base[4]= symbol_value(VV[3]);
V7= car(base[4]);
T55:;
if(!(endp(base[4]))){
goto T56;}
symlispcall_no_event(VV[55],base+5,0);
bds_unwind1;
return;
T56:;
if(!(type_of((V7))==t_cons)){
goto T62;}
if(!((V7)==symbol_value(VV[2]))){
goto T65;}
if(!(type_of(symbol_value(VV[20]))==t_cons)){
goto T69;}
if(car(symbol_value(VV[20]))==VV[23]){
goto T68;}
if(!(car(symbol_value(VV[20]))==VV[24])){
goto T69;}
T68:;
base[5]= base[3];
base[6]= make_fixnum(V6);
vs_top=(vs_base=base+5)+2;
L5();
vs_top=sup;
goto T67;
T69:;
if((base[3])!=Cnil){
goto T77;}
if(!((V6)>0)){
goto T78;}
T77:;
if(!(type_of(base[0])==t_cons)){
goto T83;}
if(!(car(base[0])==VV[25])){
goto T86;}
{object x= structure_ref(cadr(base[0]),VV[25],1),V8= VV[26];
while(!endp(V8))
if(eql(x,V8->c.c_car)){
goto T82;
}else V8=V8->c.c_cdr;}
T86:;
{object x= car(base[0]),V9= VV[27];
while(!endp(V9))
if(eql(x,V9->c.c_car)){
goto T90;
}else V9=V9->c.c_cdr;
goto T83;}
T90:;
T82:;
if(!(type_of(symbol_value(VV[20]))==t_cons)){
goto T92;}
if(!(car(symbol_value(VV[20]))==VV[28])){
goto T92;}
base[5]= base[0];
(void)simple_symlispcall_no_event(VV[56],base+5,1);
base[5]= base[3];
base[6]= make_fixnum(V6);
vs_top=(vs_base=base+5)+2;
L5();
vs_top=sup;
goto T67;
T92:;
base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
base[5]= list(2,VV[28],base[6]);
bds_bind(VV[20],base[5]);
base[7]= base[0];
base[8]= simple_symlispcall_no_event(VV[56],base+7,1);
bds_unwind1;
base[6]= base[3];
base[7]= make_fixnum(V6);
vs_top=(vs_base=base+6)+2;
L5();
vs_top=sup;
base[6]= base[5];
(void)simple_symlispcall_no_event(VV[56],base+6,1);
goto T67;
T83:;
base[5]= base[3];
base[6]= make_fixnum(V6);
vs_top=(vs_base=base+5)+2;
L5();
vs_top=sup;
base[5]= base[0];
(void)simple_symlispcall_no_event(VV[56],base+5,1);
goto T67;
T78:;
base[5]= base[0];
(void)simple_symlispcall_no_event(VV[56],base+5,1);
T67:;
if((base[1])==Cnil){
goto T113;}
princ_str("\n ",VV[17]);
if(type_of(symbol_value(VV[2]))!=t_cons)FEwrong_type_argument(Scons,symbol_value(VV[2]));
(symbol_value(VV[2]))->c.c_cdr = Ct;
princ_str("goto T",VV[17]);
base[5]= car(symbol_value(VV[2]));
(void)simple_symlispcall_no_event(VV[51],base+5,1);
princ_char(59,VV[17]);
T113:;
base[5]= Cnil;
vs_top=(vs_base=base+5)+1;
bds_unwind1;
return;
T65:;
base[1]= Ct;
goto T60;
T62:;
if(!(type_of((V7))==t_fixnum||
type_of((V7))==t_bignum||
type_of((V7))==t_ratio||
type_of((V7))==t_shortfloat||
type_of((V7))==t_longfloat||
type_of((V7))==t_complex)){
goto T124;}
base[3]= (V7);
V6= 0;
goto T60;
T124:;
if(!((V7)==VV[29])){
goto T130;}
V6= (V6)+(1);
goto T60;
T130:;
if(!((V7)==VV[21])){
goto T134;}
if(!(symbol_value(VV[2])==VV[21])){
goto T60;}
base[5]= base[0];
(void)simple_symlispcall_no_event(VV[56],base+5,1);
base[5]= base[3];
base[6]= make_fixnum(V6);
vs_top=(vs_base=base+5)+2;
L5();
vs_top=sup;
princ_str("\n return;",VV[17]);
base[5]= Cnil;
vs_top=(vs_base=base+5)+1;
bds_unwind1;
return;
T134:;
if(!((V7)==VV[31])){
goto T146;}
if(!(type_of(base[0])==t_cons)){
goto T148;}
{object x= car(base[0]),V10= VV[32];
while(!endp(V10))
if(eql(x,V10->c.c_car)){
goto T152;
}else V10=V10->c.c_cdr;
goto T148;}
T152:;
if(!(type_of(symbol_value(VV[20]))==t_cons)){
goto T154;}
if(!(car(symbol_value(VV[20]))==VV[28])){
goto T154;}
base[5]= base[0];
(void)simple_symlispcall_no_event(VV[56],base+5,1);
base[0]= symbol_value(VV[20]);
goto T148;
T154:;
base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
base[5]= list(2,VV[28],base[6]);
bds_bind(VV[20],base[5]);
base[6]= base[0];
(void)simple_symlispcall_no_event(VV[56],base+6,1);
base[0]= (VV[20]->s.s_dbind);
bds_unwind1;
T148:;
princ_str("\n frs_pop();",VV[17]);
goto T60;
T146:;
base[5]= ((V7)==VV[33]?Ct:Cnil);
if((base[5])==Cnil){
goto T169;}
goto T60;
T169:;
if(!((V7)==VV[34])){
goto T172;}
base[1]= Ct;
goto T60;
T172:;
if(!((V7)==VV[35])){
goto T176;}
if(!(symbol_value(VV[2])==VV[35])){
goto T60;}
if((base[3])!=Cnil){
goto T181;}
if(!((V6)>0)){
goto T182;}
T181:;
base[6]= base[0];
if((simple_symlispcall_no_event(VV[58],base+6,1))==Cnil){
goto T187;}
setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
base[6]= symbol_value(VV[36]);
princ_str("\n {int V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[59],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str(")}",VV[17]);
goto T180;
T187:;
base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
princ_str("\n ",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(fix(",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("))",VV[17]);
goto T180;
T182:;
princ_str("\n VMR",VV[17]);
base[6]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+6,1);
princ_char(40,VV[17]);
base[6]= base[0];
(void)simple_symlispcall_no_event(VV[59],base+6,1);
princ_char(41,VV[17]);
T180:;
base[6]= Cnil;
vs_top=(vs_base=base+6)+1;
bds_unwind1;
return;
T176:;
if(!((V7)==VV[38])){
goto T240;}
if(!(symbol_value(VV[2])==VV[38])){
goto T60;}
if((base[3])!=Cnil){
goto T245;}
if(!((V6)>0)){
goto T246;}
T245:;
base[6]= base[0];
if((simple_symlispcall_no_event(VV[61],base+6,1))==Cnil){
goto T251;}
setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
base[6]= symbol_value(VV[36]);
princ_str("\n {unsigned char V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[62],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str(")}",VV[17]);
goto T244;
T251:;
base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
princ_str("\n ",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(char-code(",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("))",VV[17]);
goto T244;
T246:;
princ_str("\n VMR",VV[17]);
base[6]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+6,1);
princ_char(40,VV[17]);
base[6]= base[0];
(void)simple_symlispcall_no_event(VV[62],base+6,1);
princ_char(41,VV[17]);
T244:;
base[6]= Cnil;
vs_top=(vs_base=base+6)+1;
bds_unwind1;
return;
T240:;
if(!((V7)==VV[39])){
goto T304;}
if(!(symbol_value(VV[2])==VV[39])){
goto T60;}
if((base[3])!=Cnil){
goto T309;}
if(!((V6)>0)){
goto T310;}
T309:;
base[6]= base[0];
if((simple_symlispcall_no_event(VV[63],base+6,1))==Cnil){
goto T315;}
setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
base[6]= symbol_value(VV[36]);
princ_str("\n {int V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[64],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str(")}",VV[17]);
goto T308;
T315:;
base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
princ_str("\n ",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(fix(",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("))",VV[17]);
goto T308;
T310:;
princ_str("\n VMR",VV[17]);
base[6]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+6,1);
princ_char(40,VV[17]);
base[6]= base[0];
(void)simple_symlispcall_no_event(VV[64],base+6,1);
princ_char(41,VV[17]);
T308:;
base[6]= Cnil;
vs_top=(vs_base=base+6)+1;
bds_unwind1;
return;
T304:;
if(!((V7)==VV[40])){
goto T368;}
if(!(symbol_value(VV[2])==VV[40])){
goto T60;}
if((base[3])!=Cnil){
goto T373;}
if(!((V6)>0)){
goto T374;}
T373:;
base[6]= base[0];
if((simple_symlispcall_no_event(VV[65],base+6,1))==Cnil){
goto T379;}
setq(VV[36],number_plus(symbol_value(VV[36]),VV[30]));
base[6]= symbol_value(VV[36]);
princ_str("\n {int V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[66],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(V",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str(")}",VV[17]);
goto T372;
T379:;
base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
princ_str("\n ",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_str("(fix(",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("))",VV[17]);
goto T372;
T374:;
princ_str("\n VMR",VV[17]);
base[6]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+6,1);
princ_char(40,VV[17]);
base[6]= base[0];
(void)simple_symlispcall_no_event(VV[66],base+6,1);
princ_char(41,VV[17]);
T372:;
base[6]= Cnil;
vs_top=(vs_base=base+6)+1;
bds_unwind1;
return;
T368:;
if(!((V7)==VV[41])){
goto T432;}
if(!(symbol_value(VV[2])==VV[41])){
goto T60;}
if((base[3])!=Cnil){
goto T437;}
if(!((V6)>0)){
goto T438;}
T437:;
base[6]= simple_symlispcall_no_event(VV[57],base+7,0);
princ_str("\n ",VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_str("= ",VV[17]);
base[7]= base[0];
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_char(59,VV[17]);
base[7]= base[3];
base[8]= make_fixnum(V6);
vs_top=(vs_base=base+7)+2;
L5();
vs_top=sup;
princ_str("\n VMR",VV[17]);
base[7]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+7,1);
princ_char(40,VV[17]);
base[7]= base[6];
(void)simple_symlispcall_no_event(VV[60],base+7,1);
princ_char(41,VV[17]);
goto T436;
T438:;
princ_str("\n VMR",VV[17]);
base[6]= symbol_value(VV[37]);
(void)simple_symlispcall_no_event(VV[51],base+6,1);
princ_char(40,VV[17]);
base[6]= base[0];
(void)simple_symlispcall_no_event(VV[51],base+6,1);
princ_char(41,VV[17]);
T436:;
base[6]= Cnil;
vs_top=(vs_base=base+6)+1;
bds_unwind1;
return;
T432:;
(void)simple_symlispcall_no_event(VV[55],base+6,0);
T60:;
base[4]= cdr(base[4]);
V7= car(base[4]);
goto T55;}}
}
/* function definition for UNWIND-NO-EXIT */
static L7()
{ register object *base=vs_base;
register object *sup=base+VM9;
vs_reserve(VM9);
check_arg(1);
vs_top=sup;
TTL:;
{int V11;
base[1]= Cnil;
V11= 0;
{object V12;
base[2]= symbol_value(VV[3]);
V12= car(base[2]);
T477:;
if(!(endp(base[2]))){
goto T478;}
symlispcall_no_event(VV[55],base+3,0);
return;
T478:;
if(!(type_of((V12))==t_cons)){
goto T484;}
if(!((V12)==base[0])){
goto T482;}
base[3]= base[1];
base[4]= make_fixnum(V11);
vs_top=(vs_base=base+3)+2;
L5();
vs_top=sup;
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
T484:;
if(!(type_of((V12))==t_fixnum||
type_of((V12))==t_bignum||
type_of((V12))==t_ratio||
type_of((V12))==t_shortfloat||
type_of((V12))==t_longfloat||
type_of((V12))==t_complex)){
goto T492;}
base[1]= (V12);
V11= 0;
goto T482;
T492:;
if(!((V12)==VV[29])){
goto T498;}
V11= (V11)+(1);
goto T482;
T498:;
{object x= (V12),V13= VV[42];
while(!endp(V13))
if(eql(x,V13->c.c_car)){
goto T503;
}else V13=V13->c.c_cdr;
goto T502;}
T503:;
if(!(base[0]==(V12))){
goto T505;}
base[3]= base[1];
base[4]= make_fixnum(V11);
vs_top=(vs_base=base+3)+2;
L5();
vs_top=sup;
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
T505:;
(void)simple_symlispcall_no_event(VV[55],base+3,0);
goto T482;
T502:;
if(!((V12)==VV[31])){
goto T511;}
princ_str("\n frs_pop();",VV[17]);
goto T482;
T511:;
if(!((V12)==VV[33])){
goto T515;}
if(!(base[0]==VV[33])){
goto T518;}
base[3]= base[1];
base[4]= make_fixnum(V11);
vs_top=(vs_base=base+3)+2;
L5();
vs_top=sup;
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
T518:;
(void)simple_symlispcall_no_event(VV[55],base+3,0);
goto T482;
T515:;
base[3]= ((V12)==VV[34]?Ct:Cnil);
if((base[3])==Cnil){
goto T525;}
goto T482;
T525:;
(void)simple_symlispcall_no_event(VV[55],base+4,0);
T482:;
base[2]= cdr(base[2]);
V12= car(base[2]);
goto T477;}}
}
/* function definition for TAIL-RECURSION-POSSIBLE */
static L8()
{ register object *base=vs_base;
register object *sup=base+VM10;
vs_reserve(VM10);
check_arg(0);
vs_top=sup;
TTL:;
{object V14;
base[0]= symbol_value(VV[3]);
V14= car(base[0]);
T534:;
if(!(endp(base[0]))){
goto T535;}
symlispcall_no_event(VV[55],base+1,0);
return;
T535:;
if(!((V14)==VV[33])){
goto T541;}
base[1]= Ct;
vs_top=(vs_base=base+1)+1;
return;
T541:;
if(type_of((V14))==t_fixnum||
type_of((V14))==t_bignum||
type_of((V14))==t_ratio||
type_of((V14))==t_shortfloat||
type_of((V14))==t_longfloat||
type_of((V14))==t_complex){
goto T543;}
if((V14)==VV[29]){
goto T543;}
if(!((V14)==VV[31])){
goto T544;}
T543:;
base[1]= Cnil;
vs_top=(vs_base=base+1)+1;
return;
T544:;
if(!(type_of((V14))==t_cons)){
goto T551;}
base[1]= Ct;
goto T550;
T551:;
base[1]= ((V14)==VV[34]?Ct:Cnil);
T550:;
if((base[1])==Cnil){
goto T554;}
goto T539;
T554:;
(void)simple_symlispcall_no_event(VV[55],base+2,0);
T539:;
base[0]= cdr(base[0]);
V14= car(base[0]);
goto T534;}
}